package com.yuantu.judiciary.model.domain;

import com.yuantu.judiciary.common.SysOnOffState;
import com.yuantu.judiciary.model.BaseDO;
import com.yuantu.judiciary.model.enums.EndpointType;
import com.yuantu.judiciary.model.enums.UserType;
import lombok.Data;
import org.hibernate.annotations.Comment;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.*;

/**
 * 账号表
 *
 * @author syw
 * @since 2023-06-12
 **/
@Data
@Entity
@DynamicUpdate
@Table(name = "account")
public class AccountDO extends BaseDO {

    /**
     * 用户名（管理端唯一）
     */
    @Column(length = 50)
    @Comment("用户名（管理端唯一）")
    private String username;

    /**
     * 密码
     */
    @Comment("密码")
    private String password;

    /**
     * 头像
     */
    @Column(columnDefinition = "text")
    @Comment("头像")
    private String avatar;

    /**
     * 用户类型
     */
    @Enumerated(EnumType.STRING)
    @Column(length = 20, nullable = false)
    @Comment("用户类型")
    private UserType type;

    /**
     * 关联用户id
     */
    @Comment("关联用户id")
    private Long userId;

    /**
     * 关联企业id
     */
    @Comment("关联企业id")
    private Long organizationId;

    /**
     * 状态：启用禁用
     */
    @Enumerated(EnumType.STRING)
    @Column(length = 10, nullable = false)
    @Comment("状态：启用禁用")
    private SysOnOffState state;

    /**
     * 企业名称（注册时填写的所属企业名称）
     */
    @Comment("企业名称（注册时填写的所属企业名称）")
    private String enterName;

    /**
     * 账号唯一编码
     */
    @Comment("账号唯一编码")
    private String openId;

    /**
     * 来源：APP、平台端、小程序、ALIPAY_APPLET
     */
    @Enumerated(EnumType.STRING)
    @Column(length = 20)
    @Comment("来源：APP、平台端、小程序、支付宝小程序")
    private EndpointType origin;

    @Comment("积分比例，默认为1")
    private Integer pointScale;

    @Comment("历史总分")
    private Double historyScore;

    @Comment("会员等级id")
    private Long membershipRankId;
}
